package com.ruoyi.exam.domain;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;


/**
 * 题目对象 exam_question
 *
 * @author Tellsea
 * @date 2025-05-30
 */
@Data
@Accessors(chain = true)
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@TableName("exam_question")
public class ExamQuestion extends BaseEntity {

    /**
     * 题目ID
     */
    @TableId
    private Long questionId;

    /**
     * 分类ID
     */
    @Excel(name = "分类ID")
    private Long categoryId;

    /**
     * 题目类型（1单选 2多选 3判断 4填空 5简答 6综合）
     */
    @Excel(name = "题目类型", readConverterExp = "1=单选,2=多选,3=判断,4=填空,5=简答,6=综合")
    private String questionType;

    /**
     * 题目标题
     */
    @Excel(name = "题目标题")
    private String questionTitle;

    /**
     * 题目内容（富文本）
     */
    @Excel(name = "题目内容", readConverterExp = "富=文本")
    private String questionContent;

    /**
     * 题目解析
     */
    @Excel(name = "题目解析")
    private String questionAnalysis;

    /**
     * 难度等级（1简单 2中等 3困难）
     */
    @Excel(name = "难度等级", readConverterExp = "1=简单,2=中等,3=困难")
    private String difficultyLevel;

    /**
     * 题目分值
     */
    @Excel(name = "题目分值")
    private BigDecimal score;

    /**
     * 状态（0正常 1停用）
     */
    @Excel(name = "状态", readConverterExp = "0=正常,1=停用")
    private String status;

    /**
     * 是否公开（0私有 1公开）
     */
    @Excel(name = "是否公开", readConverterExp = "0=私有,1=公开")
    private String isPublic;

    /**
     * 使用次数
     */
    @Excel(name = "使用次数")
    private Long useCount;

    /**
     * 正确次数
     */
    @Excel(name = "正确次数")
    private Long correctCount;

    /**
     * 标签（逗号分隔）
     */
    @Excel(name = "标签", readConverterExp = "逗=号分隔")
    private String tags;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remark;

}
